GtkWindow: Fix a use-after-free
authorMatthias Clasen <mclasen@redhat.com>
Fri, 17 Jul 2015 23:19:24 +0000 (19:19 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 17 Jul 2015 23:19:24 +0000 (19:19 -0400)
We were printing a string in a warning after freeing it.
Also, fix an x/y typo that might cause popovers to be
mispositioned.

gtk/gtkwindow.c

index e87828083963c3ea634c2ae3bd8209cecfcc7783..232d1c163557f11eacb41f0b78453a4ed869e1ab 100644 (file)
@@ -6452,7 +6452,7 @@ popover_get_rect (GtkWindowPopover      *popover,
         {
           rect->y = popover->rect.y + popover->rect.height;
 
-          if (rect->y + rect->height < win_alloc.x + win_alloc.height &&
+          if (rect->y + rect->height < win_alloc.y + win_alloc.height &&
               gtk_widget_get_vexpand (popover->widget))
             rect->height = win_alloc.y + win_alloc.height - rect->y;
         }
@@ -11163,14 +11163,16 @@ gtk_window_activate_menubar (GtkWindow   *window,
     return FALSE;
 
   gtk_accelerator_parse (accel, &keyval, &mods);
-  g_free (accel);
 
   if (keyval == 0)
     {
       g_warning ("Failed to parse menu bar accelerator '%s'\n", accel);
+      g_free (accel);
       return FALSE;
     }
 
+  g_free (accel);
+
   /* FIXME this is wrong, needs to be in the global accel resolution
    * thing, to properly consider i18n etc., but that probably requires
    * AccelGroup changes etc.